package com.xuecheng.content.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xuecheng.api.content.model.dto.CoursePubDTO;
import com.xuecheng.api.content.model.dto.CourseBaseDTO;
import com.xuecheng.common.domain.response.RestResponse;
import com.xuecheng.common.domain.response.RestResponse;
import com.xuecheng.content.entity.CoursePub;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 课程发布 服务类
 * </p>
 *
 * @author itcast
 * @since 2021-12-17
 */
public interface CoursePubService extends IService<CoursePub> {


    /**
     * 课程预览-教学机构
     * @param courseId
     * @param companyId
     * @return
     */
    Map<String, Object> preview(Long courseId, Long companyId);


    /**
     * 课程发布
     * @param courseBaseId
     * @param companyId
     */
    void publish(Long courseBaseId,Long companyId,boolean isPublish);


    /**
     *
     * @param courseBaseId Long 课程基础信息Id值
     * @return
     */
    CoursePubDTO getCourseBaseByIdNoCompanyId(Long courseBaseId);


    /**
     * 根据课程发布ID获取课程信息
     * @param targetId 课程发布ID
     * @return
     */
    RestResponse<CourseBaseDTO> getCourseBaseByTargetId(Long targetId);

    /**
     * 远程调用-课程内容管理服务-根据课程名称查找coursePub的id
     * @param courseName String 课程名称
     * @return
     */
    RestResponse<CoursePubDTO> getByCourseName4s(String courseName);

    /**
     * 远程调用-课程内容管理服务-根据作业id获取课程名
     * @param workId
     * @return
     */
    RestResponse<List<String>> getCoursePubByWorkId4s(Long workId);
}
